package com.ruoyi.kiku.service.impl;

import java.util.Collections;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.kiku.domain.JsslArtistsAwards;
import com.ruoyi.kiku.domain.JsslArtistsWorks;
import com.ruoyi.kiku.mapper.JsslArtistsAwardsMapper;
import com.ruoyi.kiku.mapper.JsslArtistsWorksMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.kiku.mapper.JsslArtistsInfoMapper;
import com.ruoyi.kiku.domain.JsslArtistsInfo;
import com.ruoyi.kiku.service.IJsslArtistsInfoService;

/**
 * 橘事顺利艺术家Service业务层处理
 *
 * @author TT
 * @date 2025-09-03
 */
@Service
public class JsslArtistsInfoServiceImpl implements IJsslArtistsInfoService
{
    @Autowired
    private JsslArtistsInfoMapper jsslArtistsInfoMapper;
    @Autowired
    private JsslArtistsWorksMapper jsslArtistsWorksMapper;
    @Autowired
    private JsslArtistsAwardsMapper jsslArtistsAwardsMapper;

    /**
     * 查询橘事顺利艺术家
     *
     * @param id 橘事顺利艺术家主键
     * @return 橘事顺利艺术家
     */
    @Override
    public JsslArtistsInfo selectJsslArtistsInfoById(Long id)
    {
        return jsslArtistsInfoMapper.selectJsslArtistsInfoById(id);
    }

    /**
     * 查询橘事顺利艺术家列表
     *
     * @param jsslArtistsInfo 橘事顺利艺术家
     * @return 橘事顺利艺术家
     */
    @Override
    public List<JsslArtistsInfo> selectJsslArtistsInfoList(JsslArtistsInfo jsslArtistsInfo)
    {
        return jsslArtistsInfoMapper.selectJsslArtistsInfoList(jsslArtistsInfo);
    }

    /**
     * 新增橘事顺利艺术家
     *
     * @param jsslArtistsInfo 橘事顺利艺术家
     * @return 结果
     */
    @Override
    public int insertJsslArtistsInfo(JsslArtistsInfo jsslArtistsInfo)
    {
        jsslArtistsInfo.setCreateTime(DateUtils.getNowDate());
        return jsslArtistsInfoMapper.insertJsslArtistsInfo(jsslArtistsInfo);
    }

    /**
     * 修改橘事顺利艺术家
     *
     * @param jsslArtistsInfo 橘事顺利艺术家
     * @return 结果
     */
    @Override
    public int updateJsslArtistsInfo(JsslArtistsInfo jsslArtistsInfo)
    {
        jsslArtistsInfo.setUpdateTime(DateUtils.getNowDate());
        return jsslArtistsInfoMapper.updateJsslArtistsInfo(jsslArtistsInfo);
    }

    /**
     * 批量删除橘事顺利艺术家
     *
     * @param ids 需要删除的橘事顺利艺术家主键
     * @return 结果
     */
    @Override
    public int deleteJsslArtistsInfoByIds(Long[] ids)
    {
        return jsslArtistsInfoMapper.deleteJsslArtistsInfoByIds(ids);
    }

    /**
     * 删除橘事顺利艺术家信息
     *
     * @param id 橘事顺利艺术家主键
     * @return 结果
     */
    @Override
    public int deleteJsslArtistsInfoById(Long id)
    {
        return jsslArtistsInfoMapper.deleteJsslArtistsInfoById(id);
    }
    /**
     * 查询橘事顺利艺术家列表(官网)
     *
     * @param jsslArtistsInfo 橘事顺利艺术家
     * @return 橘事顺利艺术家
     */
    @Override
    public List<JsslArtistsInfo> selectJsslArtistsInfoList2(JsslArtistsInfo jsslArtistsInfo) {
        if (jsslArtistsInfo.getCategory() != null){
            if (jsslArtistsInfo.getCategory().equals("actor")){
                jsslArtistsInfo.setCategory("3");
            }else if (jsslArtistsInfo.getCategory().equals("director")){
                jsslArtistsInfo.setCategory("4");
            }else if (jsslArtistsInfo.getCategory().equals("writer")){
                jsslArtistsInfo.setCategory("5");
            }
        }
        List<JsslArtistsInfo> jsslArtistsInfos = jsslArtistsInfoMapper.selectJsslArtistsInfoList2(jsslArtistsInfo);
        if (jsslArtistsInfos != null ){
            for (JsslArtistsInfo jsslArtistsInfo1 : jsslArtistsInfos) {
                Long artistId = jsslArtistsInfo1.getId();
                List<JsslArtistsWorks> artistsMasterpiece = jsslArtistsWorksMapper.getArtistsMasterpiece(artistId);
                List<JsslArtistsAwards> artistsAwards = jsslArtistsAwardsMapper.selectJsslArtistsAwardsByArtistsId(artistId);
                jsslArtistsInfo1.setWorks(artistsMasterpiece);
                jsslArtistsInfo1.setAwards(artistsAwards);
                jsslArtistsInfo1.setWorksCount(artistsMasterpiece.size());
                jsslArtistsInfo1.setAwardsCount(artistsAwards.size());
            }
        }
        return jsslArtistsInfos;
    }
}
